home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / Developer University / DUProjects / Counter SOM Library / •SOM / SCounter.xih < prev   
Encoding:
Text File  |  1996-04-01  |  7.0 KB  |  290 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: :SCounter.xih.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.18
  7.  *     SOM Emitter emitxih.dll: 2.33
  8.  */
  9.  
  10. #ifndef SOM_DevUniv_SCounter_xih
  11. #define SOM_DevUniv_SCounter_xih
  12.  
  13. #include <somcls.xh>
  14. #include <somcm.xh>
  15.  
  16. #ifndef SOM_DevUniv_SCounter_xh
  17. #include <SCounter.xh>
  18. #endif
  19.  
  20. /*
  21.  * Set the scope of methods functions
  22.  */
  23. #ifndef SOM_Scope
  24. #define SOM_Scope extern "C"
  25. #endif
  26.  
  27. #define DevUniv_SCounter_MaxNoMethods 5
  28.  
  29. /*
  30.  * -- Instance Data
  31.  */
  32.  
  33. /*
  34.  * -- Use best possible alignment for instance data slice.
  35.  */
  36. #if powerc
  37. #  pragma options align=power
  38. #endif
  39. typedef struct {
  40.     short value;
  41. } DevUniv_SCounterData;
  42. #if powerc
  43. #  pragma options align=reset
  44. #endif
  45.  
  46. /*
  47.  * -- Getdata Macro
  48.  */
  49.  
  50. /*
  51.  * -- This emitter treats Data Tokens as Thunks by default.
  52.  * -- Use the sc modifier "nothunks" to override this default.
  53.  */
  54. #if !mw_bug
  55. SOMEXTERN
  56. #endif
  57. typedef DevUniv_SCounterData* (* SOMLINK somTD_DevUniv_SCounter_DataThunk)(void*);
  58. #define DevUniv_SCounterGetData(somSelf) \
  59.    (((somTD_DevUniv_SCounter_DataThunk)(DevUniv_SCounterClassData.instanceDataToken))(somSelf))
  60.  
  61. /*
  62.  * -- Instance Data Access Macros for use in Method Procedures
  63.  */
  64. #ifdef VARIABLE_MACROS
  65.   #define _value (somThis->value)
  66. #endif
  67.  
  68.  
  69. /*
  70.  * Trace/Debug macro
  71.  */
  72. #ifndef DevUniv_SCounterMethodDebug
  73. #define DevUniv_SCounterMethodDebug(c,m) SOMMethodDebug(c,m)
  74. #endif
  75.  
  76. /*
  77.  * -- Method Macros for use in Method Procedures
  78.  */
  79. #ifdef METHOD_MACROS
  80.   #define _somInit somSelf->somInit
  81.   #define _somUninit somSelf->somUninit
  82.   #define _somDuplicateReference somSelf->somDuplicateReference
  83.   #define _somCompareReference somSelf->somCompareReference
  84.   #define _somRelease somSelf->somRelease
  85.   #define _somFree somSelf->somFree
  86.   #define _somCanDelete somSelf->somCanDelete
  87.   #define _somGetClass somSelf->somGetClass
  88.   #define _somGetClassName somSelf->somGetClassName
  89.   #define _somGetSize somSelf->somGetSize
  90.   #define _somIsA somSelf->somIsA
  91.   #define _somRespondsTo somSelf->somRespondsTo
  92.   #define _somIsInstanceOf somSelf->somIsInstanceOf
  93.   #define _somDispatch somSelf->somDispatch
  94.   #define _somClassDispatch somSelf->somClassDispatch
  95.   #define _somCastObj somSelf->somCastObj
  96.   #define _somResetObj somSelf->somResetObj
  97.   #define _somPrintSelf somSelf->somPrintSelf
  98.   #define _somDumpSelf somSelf->somDumpSelf
  99.   #define _somDumpSelfInt somSelf->somDumpSelfInt
  100.   #define _Increment somSelf->Increment
  101.   #define _Decrement somSelf->Decrement
  102.   #define _Square somSelf->Square
  103.   #define __get_value somSelf->_get_value
  104.   #define __set_value somSelf->_set_value
  105. #endif
  106.  
  107.  
  108. /*
  109.  * Introduced methods
  110.  */
  111.  
  112. /* New Method: Increment */
  113. SOM_Scope void  SOMLINK COUNTIncrement(DevUniv_SCounter *somSelf, Environment *ev);
  114.  
  115. /* New Method: Decrement */
  116. SOM_Scope void  SOMLINK COUNTDecrement(DevUniv_SCounter *somSelf, Environment *ev);
  117.  
  118. /* New Method: Square */
  119. SOM_Scope void  SOMLINK COUNTSquare(DevUniv_SCounter *somSelf, Environment *ev);
  120.  
  121. /* New Method: _get_value */
  122. SOM_Scope short  SOMLINK COUNT_get_value(DevUniv_SCounter *somSelf, Environment *ev);
  123.  
  124. /* New Method: _set_value */
  125. SOM_Scope void  SOMLINK COUNT_set_value(DevUniv_SCounter *somSelf, Environment *ev,
  126.         short value);
  127.  
  128. /*
  129.  * -- Primary Implementation File Support
  130.  */
  131. #if (defined(DevUniv_SCounter_Class_Source) || defined(SOM_Module_scounter_Source))
  132.  
  133. /*
  134.  * -- The DevUniv_SCounter ClassData Structure
  135.  */
  136.  
  137. #if PRAGMA_IMPORT_SUPPORTED
  138. #pragma export list DevUniv_SCounterClassData
  139. #endif
  140.  
  141.  
  142. /*
  143.  * -- The DevUniv_SCounter Class Ancestor Table
  144.  */
  145. static somClassDataStructure * SOMDLINK DevUniv_SCounterClassAncestors [] = {
  146.     (somClassDataStructure*) & SOMObjectClassData,    /* parent */
  147. };
  148.  
  149.  
  150. static void DevUniv_SCounterDLLD ( void ) { }
  151.  
  152.  
  153. /*
  154.  * -- The DevUniv_SCounter Static Class Info Master Table
  155.  */
  156. static somStaticClassInfo DevUniv_SCounterSCI = {
  157.       70,    /* layout version */
  158.     (somClassDataStructure*)  & DevUniv_SCounterClassData,    /* main token table */
  159.       0,    /* no override procs table */
  160.       DevUniv_SCounterClassAncestors,    /* ancestor table */
  161.       DevUniv_SCounterDLLD,    /* DLLdesignator */
  162.       0,    /* no special procs */
  163.       0,    /* rtci slot */
  164.       0,    /* count slot */
  165.       0,    /* dynamic ancestry */
  166.       0,    /* free */
  167.       0,    /* free */
  168.       0,    /* free */
  169.       0,    /* free */
  170.  
  171. /*
  172.  * -- The DevUniv_SCounter Counts Table
  173.  */
  174.     (somStaticClassCounts *)
  175.         "\x00\x00\x00\x01"    /* majorversion */
  176.         "\x00\x00\x00\x00"    /* minorversion */
  177.         "\x00\x00\x00\x01"    /* flags */
  178.             "\x00\x02"    /* type code alignment */
  179.             "\x00\x05"    /* classTokenCount */
  180.             "\x00\x01"    /* numDirectParents */
  181.             "\x00\x00"    /* numMetaClasses */
  182.             "\x00\x00"    /* numOverriddenAncestors */
  183.             "\x00\x00"    /* numMigratedMethods */
  184.             "\x00\x00"    /* numSelectedInherited */
  185.             "\x00\x00"    /* numUnused */
  186.             "\x00\x00"    /* free */
  187.             "\x00\x00"    /* free */
  188.             "\x00\x00"    /* free */
  189.             "\x00"    /* free */
  190.                 ,
  191.  
  192.     {
  193.       "DevUniv::SCounter",    /* the class name */
  194.       sizeof (DevUniv_SCounterData), /* class instance data size */
  195.  
  196. /*
  197.  * -- The DevUniv_SCounter Parent Versions Table
  198.  */
  199.     (somParentVersions *)
  200.         "\x00\x00\x00\x46"    /* majorversion */
  201.         "\x00\x00\x00\x01"    /* minorversion */
  202.                 ,
  203.  
  204.  
  205. /*
  206.  * -- The DevUniv_SCounter Token Slot Usage Table
  207.  */
  208.     (somSlotUsage *)
  209.         "\x00\x00",
  210.  
  211.  
  212. /*
  213.  * -- The DevUniv_SCounter Method Signature Info
  214.  */
  215.     (somSignatureInfo *)
  216.         "\x02\x07"    /* Increment */
  217.          "\x02\x07"    /* Decrement */
  218.          "\x02\x03"    /* _get_value */
  219.          "\x03\x17\xc3"    /* _set_value */
  220.          "\x02\x07"    /* Square */
  221.              ,
  222.  
  223.  
  224. /*
  225.  * -- The DevUniv_SCounter Class Method Names
  226.  */
  227.         "Increment\0"
  228.         "Decrement\0"
  229.         "_get_value\0"
  230.         "_set_value\0"
  231.         "Square\0"
  232.             ,
  233.  
  234.       0,    /* no override data table */
  235.       0,    /* no migrated methods table */
  236.       0,    /* no selected inherited */
  237.       0,    /* unused */
  238.  
  239.       0,    /* free */
  240.       0,    /* free */
  241.       0,    /* free */
  242.       0,    /* free */
  243.     },
  244. };
  245.  
  246. /*
  247.  * -- The DevUniv_SCounter ClassData Structure
  248.  */
  249. struct DevUniv_SCounterClassDataStructure SOMDLINK DevUniv_SCounterClassData = {
  250.       0,            /* zero */
  251.     & DevUniv_SCounterSCI,        /* SCI link */
  252.       0,            /* instanceDataToken */
  253.       0,            /* reserved */
  254.       0,            /* reserved */
  255.       0,            /* reserved */
  256.     (somMToken) COUNTIncrement,    /* Increment:method */
  257.     (somMToken) COUNTDecrement,    /* Decrement:method */
  258.     (somMToken) COUNT_get_value,    /* _get_value:method */
  259.     (somMToken) COUNT_set_value,    /* _set_value:method */
  260.     (somMToken) COUNTSquare,    /* Square:method */
  261. };
  262.  
  263.  
  264. /*
  265.  * Functions for attributes.
  266.  */
  267. SOM_Scope short  SOMLINK COUNT_get_value(DevUniv_SCounter *somSelf, Environment *ev){
  268.     DevUniv_SCounterData *somThis = DevUniv_SCounterGetData(somSelf);
  269.     DevUniv_SCounterMethodDebug("DevUniv_SCounter","COUNT_get_value");
  270.     SOM_IgnoreWarning(ev);
  271.  
  272.     return (somThis->value);
  273. }
  274. SOM_Scope void  SOMLINK COUNT_set_value(DevUniv_SCounter *somSelf, Environment *ev,
  275.         short value){
  276.     DevUniv_SCounterData *somThis = DevUniv_SCounterGetData(somSelf);
  277.     DevUniv_SCounterMethodDebug("DevUniv_SCounter","COUNT_set_value");
  278.     SOM_IgnoreWarning(ev);
  279.  
  280.     somThis->value = value;
  281. }
  282.  
  283. /*
  284.  * Macros for initializers/destructors
  285.  */
  286.  
  287. #endif /* Primary Implementation Support */
  288.  
  289. #endif       /* SOM_DevUniv_SCounter_xih */
  290.